采集集群节点的Systemd Journal日志数据

Systemd是Linux系统的一个初始化系统和服务管理器,负责启动系统后的所有服务。其中,Journal是Systemd的一个组成部分,用于收集和存储系统日志。在Kubernetes容器场景下,如需获取kubelet、操作系统层等涉及节点稳定性的关键指标日志,您需要通过Systemd Journal日志数据进行查询和分析。ACK集群兼容了日志服务SLS,您可以安装日志组件Logtail,通过DaemonSet的方式完成采集。

计费说明

使用本功能时,除ACK集群相关费用外,还会产生SLS相关费用。SLS以按量付费方式进行统一计费,请参见SLS计费概述

前提条件

步骤一:通过AliyunLogConfig配置采集方式

AliyunLogConfig是SLS自定义的CRD。您可以通过配置AliyunLogConfig的YAML文件创建对应的CR,从而管理Logtail组件日志采集的配置。

下方示例代码以创建名为systemd-journal-log-config的Logtail采集配置为例,介绍如何采集集群内所有节点/logtail_host/var/log/journal路径下的Systemd Journal日志。

您可以在project字段和logstore字段中指定已有的Project和Logstore用于接收上报的数据,也可以让系统自动创建。

apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
metadata:
  # 资源名称,需在当前ACK集群内保持唯一。
  name: systemd-journal-log-config
  namespace: kube-system
spec:
  # 填写采集数据上报的Project的名称,默认为k8s-log-<your_cluster_id>。也支持自定义。如名称对应的Project不存在,系统会自动创建一个Project。
  project: k8s-log-<your_cluster_id>
  # 填写采集数据上报的Logstore的名称。如果您所指定的Logstore不存在,系统会自动创建一个Logstore。
  logstore: systemd-journal-log
  # 设置Logtail采集配置。
  logtailConfig:
    # 设置采集的数据源类型。采集文本日志时,需设置为file。
    inputType: plugin
    # 设置Logtail采集配置的名称。
    configName: systemd-journal-log-config
    inputDetail:
      plugin:
        inputs:
        - detail:
            JournalPaths:
            - "/logtail_host/var/log/journal"
            Kernel: true
            ParsePriority: true
            ParseSyslogFacility: true
          type: service_journal

步骤二:查询和分析采集数据

完成采集配置后,您可以登录日志服务控制台,在目标Project、Logstore中查询已上报的集群的所有节点的Systemd Journal日志数据。具体操作,请参见查询和分析日志

相关文档

Logtail组件支持从原始的二进制文件中采集Systemd Journal日志数据,请参见采集Systemd Journal日志